/**
 * Created by Administrator on 2017/11/16 0016.
 */
var common = require('../../common');
var pool = require('../index');
var mysql = require('mysql');
var YjxBaseModel = require('./YjxBaseModel');
var CONFIG = require('../../config');


var YjxFormInfoModel = function (obj) {
    YjxBaseModel.call(this,obj);
  //  CREATE TABLE `yjx_form_info` (
  //`info_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '反馈信息id',
  //`uni_doc_id` bigint(20) NOT NULL COMMENT '作品id',
  //`user_id` bigint(20) NOT NULL COMMENT '作者id',
  //`form_id` bigint(20) DEFAULT NULL COMMENT '默认表单模版id',
  //`info_type` int(3) NOT NULL DEFAULT '10' COMMENT '类型:10根据模版表单,20根据自定义表单',
  //`key1` varchar(100) DEFAULT '' COMMENT '项目1',
  //`value1` varchar(1000) DEFAULT NULL COMMENT '项目1信息',
  //`key2` varchar(100) DEFAULT '' COMMENT '项目2',
  //`value2` varchar(1000) DEFAULT NULL COMMENT '项目2信息',
  //`key3` varchar(100) DEFAULT '' COMMENT '项目3',
  //`value3` varchar(1000) DEFAULT NULL COMMENT '项目3信息',
  //`key4` varchar(100) DEFAULT '' COMMENT '项目4',
  //`value4` varchar(1000) DEFAULT NULL COMMENT '项目4信息',
  //`key5` varchar(100) DEFAULT '' COMMENT '项目5',
  //`value5` varchar(1000) DEFAULT NULL COMMENT '项目5信息',
  //`key6` varchar(100) DEFAULT '' COMMENT '项目6',
  //`value6` varchar(1000) DEFAULT NULL COMMENT '项目6信息',
  //`key7` varchar(100) DEFAULT '' COMMENT '项目7',
  //`value7` varchar(1000) DEFAULT NULL COMMENT '项目7信息',
  //`key8` varchar(100) DEFAULT '' COMMENT '项目8',
  //`value8` varchar(1000) DEFAULT NULL COMMENT '项目8信息',
  //`key9` varchar(100) DEFAULT '' COMMENT '项目9',
  //`value9` varchar(1000) DEFAULT NULL COMMENT '项目9信息',
  //`key10` varchar(100) DEFAULT '' COMMENT '项目10',
  //`value10` varchar(1000) DEFAULT NULL COMMENT '项目10信息',
  //`create_time` datetime NOT NULL,
  //`update_time` datetime NOT NULL,
  //`update_by` varchar(50) DEFAULT NULL,
  //`del_flg` int(1) NOT NULL DEFAULT '0',
  //      PRIMARY KEY (`info_id`)
  //  ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='表单信息反馈表'
};

YjxFormInfoModel.prototype = new YjxBaseModel();

// 取得表名
YjxFormInfoModel.prototype.getTableName = function(){
    return 'yjx_form_info';
};
// 取得查询语句中where 后面匹配主键的条件（需要各派生类进行重载）
YjxFormInfoModel.prototype.getWhereConditionOfKeyEqual = function(){
    return 'info_id='+this.info_id;
};


/**
 * 获取用户作品反馈列表
 *
 * @author 毛凯
 * @date 2017-12-12
 *
 * @param userId 用户标识
 * @param docId 作品id
 * @param pageNum 页码
 * @param pageSize 页容量
 * @param callback 回调
 *           err: 查询失败
 *           results: 用户对应收藏列表
 *
 * */
YjxFormInfoModel.prototype.getFormInfoList = function (userId,docId, pageNum, pageSize,callback){
    pool.pool.getConnection(function (getConErr, connection) {
        if (getConErr) {
            console.log('YjxFormInfoModel.js [getFormInfoList] getConErr' + getConErr);
            return callback(getConErr, null);
        }
        var sql = sql_getFormInfo(false, userId,docId, pageNum, pageSize);
        console.log(sql);
        connection.query(sql, function (queryErr, results) {
            connection.release();
            if (queryErr) {
                console.log('YjxFormInfoModel.js [getFormInfoList] queryErr' + queryErr)
            }
            return callback(queryErr, results);
        });
    })
};


/**
 * 获取用户作品反馈列表数量
 *
 * @author 毛凯
 * @date 2017-12-12
 *
 * @param userId 用户标识
 * @param pageNum 页码
 * @param pageSize 页容量
 * @param docId 作品的标识标识
 * @param callback 回调
 *           err: 查询失败
 *           results: 用户对应收藏列表
 *
 * */
YjxFormInfoModel.prototype.getFormInfoListCount = function (userId,docId, pageNum, pageSize,callback){
    pool.pool.getConnection(function (getConErr, connection) {
        if (getConErr) {
            console.log('YjxFormInfoModel.js [getFormInfoList] getConErr' + getConErr);
            return callback(getConErr, null);
        }
        var sql = sql_getFormInfo(true, userId,docId, pageNum, pageSize);
        console.log(sql);
        connection.query(sql, function (queryErr, results) {
            connection.release();
            if (queryErr) {
                console.log('YjxFormInfoModel.js [getFormInfoList] queryErr' + queryErr)
            }
            var count = results[0].count;
            return callback(queryErr, count);
        });
    })
};


/**
 * 获取用户作品反馈列表sql(数量/列表)
 *
 * @author 毛凯
 * @date   2017-12-12
 *
 * @param bForCnt true 获取用去收藏列表个数的 sql, false 标记获取列表的 sql
 * @param userId 用户标识
 * @param docId 作品标识
 * @param pageNum 页码
 * @param pageSize 页容量
 *
 * @return 对应类型的 sql
 * */
function sql_getFormInfo(bForCnt, userId,docId, pageNum, pageSize) {
    var sql = '';
    if (bForCnt) {
        sql += ' SELECT COUNT(0) as count ';
    } else {
        sql += "SELECT	" +
            "	  *,	" +
            "	  DATE_FORMAT(	" +
            "	    yfi.create_time,	" +
            "	    '%Y-%m-%d %H:%i:%s'	" +
            "	  ) AS `time`	"
    }
    sql +="	FROM	" +
        "	  yjx.yjx_form_info yfi	" +
        "	WHERE yfi.uni_doc_id = "+docId+"	" +
        "	  AND yfi.user_id = "+userId+"	" +
        "	  AND yfi.del_flg = 0	" +
        "	  ORDER BY yfi.create_time DESC	";
    if(!bForCnt){
        if (typeof pageNum !== 'undefined' && pageNum !== null &&
            typeof pageSize !== 'undefined' && pageSize !== null)
        {
            var skipCnt = Number(pageNum||'0') * Number(pageSize||'0');
            sql += " LIMIT " + skipCnt + "," + Number(pageSize||'0');
        }
    }
    return sql;
}


module.exports = YjxFormInfoModel;